package controller

import (
	"github.com/gin-gonic/gin"
	"lab.com/biz"
	"lab.com/request"
)

type cIUR struct {
	APIBase
}

// IUR .
var IUR = cIUR{}

// List return iur list (all user)
func (iur *cIUR) List(c *gin.Context) {
	inputParams := request.IurListReq{}
	if err := inputParams.CheckInputParams(c); err != nil {
		iur.Resp(c, nil, err)
		return
	}

	res, err := biz.Iur.List(c, inputParams)
	iur.Resp(c, res, err)
}

// Detail return iur detail (all user)
func (iur *cIUR) Detail(c *gin.Context) {
	inputParams := request.IurDetailReq{}
	if err := inputParams.CheckInputParams(c); err != nil {
		iur.Resp(c, nil, err)
		return
	}

	res, err := biz.Iur.Detail(c, inputParams)
	iur.Resp(c, res, err)
}

// Add return iur add (admin)
func (iur *cIUR) Add(c *gin.Context) {
	inputParams := request.IurAddReq{}
	if err := inputParams.CheckInputParams(c); err != nil {
		iur.Resp(c, nil, err)
		return
	}

	err := biz.Iur.Add(c, inputParams)
	iur.Resp(c, nil, err)
}

// Delete return iur delete (admin)
func (iur *cIUR) Delete(c *gin.Context) {
	inputParams := request.IurDeleteReq{}
	if err := inputParams.CheckInputParams(c); err != nil {
		iur.Resp(c, nil, err)
		return
	}

	err := biz.Iur.Delete(c, inputParams)
	iur.Resp(c, nil, err)
}

// Edit return iur edit (admin)
func (iur *cIUR) Edit(c *gin.Context) {
	inputParams := request.IurEditReq{}
	if err := inputParams.CheckInputParams(c); err != nil {
		iur.Resp(c, nil, err)
		return
	}

	err := biz.Iur.Edit(c, inputParams)
	iur.Resp(c, nil, err)
}

// Show return iur show (admin)
func (iur *cIUR) Show(c *gin.Context) {
	inputParams := request.IurShowReq{}
	if err := inputParams.CheckInputParams(c); err != nil {
		iur.Resp(c, nil, err)
		return
	}

	err := biz.Iur.Show(c, inputParams)
	iur.Resp(c, nil, err)
}

// Home return iur ome (admin)
// func (iur *cIUR) Home(c *gin.Context) {
// 	inputParams := request.IurHomeReq{}
// 	if err := inputParams.CheckInputParams(c); err != nil {
// 		iur.Resp(c, nil, err)
// 		return
// 	}

// 	err := biz.Iur.Home(c, inputParams)
// 	iur.Resp(c, nil, err)
// }

// ListInManage return iur list in manage (admin)
func (iur *cIUR) ListInManage(c *gin.Context) {
	inputParams := request.IurListInManageReq{}
	if err := inputParams.CheckInputParams(c); err != nil {
		iur.Resp(c, nil, err)
		return
	}

	res, err := biz.Iur.ListInManage(c, inputParams)
	iur.Resp(c, res, err)
}
